﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Singleton
{
    /*
     * 静态内部类实现
     * 简单、线程安全、延迟加载
     * 延迟加载：在使用该类时，才会初始化对应的静态内部类和静态对象。
     * 静态对象的初始化，是在使用该类，但执行该类的构造 函数之前。
     */
    internal class StaticSingleton
    {
        static readonly int i = 3;
        private StaticSingleton() { }

        private static class SingletonHolder
        {
            public static readonly StaticSingleton instance=new StaticSingleton();  
        }

        public static StaticSingleton getInstance()
        {
            return SingletonHolder.instance;
        }
    }
}
